Computing networks using packets to transmit data between devices are currently ubiquitous. The packets include a media access control (MAC) address for both the sending and the receiving network station. Virtual local area networks (VLANs) are used to create networks that are not bound by geography and provide flexibility in configuration. Such networks are faced with balancing traffic of the packets to ensure that devices on the network enjoy efficient service. Incoming and outgoing traffic on a network is often routed to different paths by network traffic managers in order to allow the most efficient transmission of data. Such transmissions occur over switches that carry traffic to be distributed to network stations.
In more complex networks, network traffic appliances may be used to assist in routing traffic. Such network traffic appliances include multiple blades that each act as switches to handle traffic for groups of network stations. Each blade handles traffic for network stations with different MAC addresses that may be known to a particular blade that routes traffic associated with the station such as outgoing traffic, but not to other blades on the network traffic appliance that may not be associated with the station. In a trunk line such as a T1 that spans devices in a network, incoming and outgoing data packets across the trunk can hash to any network station based on the nature of the network traffic. With a favorable distribution of traffic this normally results in each blade acting as a network switch handling traffic for the same set of network stations. Each blade has a learning table of known addresses for associated network stations and packets that are passed through the blade. As a result, each blade can perform learning of MAC addresses independent of the other blades. This is desirable because learning is typically done in hardware and it avoids the overhead and difficulty of sharing information across blades. Normally, the address entries in the learning tables are flushed periodically in order to remove certain address problems. Least recently used addresses are therefore flushed from the various learning tables.
In current switch architectures, when a blade receives a packet for an unknown destination, the lookup for the address in the learning table fails, resulting in a destination lookup fail (DLF) condition. The blade then floods the packet out each port (for that VLAN) to the other blades. When return packets from the unknown station flow back through the blade, the blade updates its learning table with the new learned address such that the next packet to the station will be known and not cause a subsequent DLF condition.
There may be problems with VLAN groups and multi-blade trunking where the blades of a network traffic appliance could cause significant duplication of VLAN group forwarded traffic due to the need to repeatedly find a presently unknown address for a destination. For example, traffic hashed through one blade on the way into a network station and through another blade on the way out will be routed through different front panel switches in the network appliance. The MAC address of the destination network station may not be learned or learned via address resolution protocol (ARP) which is a request for a particular address, but then forgotten later by the network switching when the learning tables are flushed. The effect is that some traffic is always broadcast by the front panel switch so every switch in the network traffic appliance gets a copy of the packet in order to learn the previously unknown destination address. Each switch then redirects the traffic to the right switch associated with the destination network station. This has the undesirable effect of flooding the VLAN with packets from continuous DLF conditions.
Therefore, the fundamental problem with the switch-based architecture is when packets to and from a particular station always follow different paths. This situation results in a continuous DLF and sending flood packets to that station since the sending blades do not ever normally learn of the destination station address.
One proposed solution involves syncing the learning tables of all of the blades using software. This puts a heavy burden on the control plane of the network traffic appliance. Another possible solution is to program static MAC addresses into each blade. However this proposed solution increases the amount of blade hardware resources that must be devoted to storing and managing address data. Software learning disables the hardware learning functionality in the blades, and software is completely responsible for adding/removing entries to the learning tables of all the blades. Further, the learning rate would then be limited to how fast a processor can process the packets that need to be learned, which may slow down network traffic.